package com.vca.common.vo;

import com.alibaba.fastjson.JSONArray;
import com.vca.common.response.CourseAboutResponse;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author chenbing
 * @date 2022/9/20   20:17
 */
@Data
@ApiModel(value = "课程数据响应对象")
public class CourseVo {

    @ApiModelProperty(value = "课程主键id")
    private Long id;

    @ApiModelProperty(value = "课程名称")
    private String name;

    @ApiModelProperty(value = "英文课程名称")
    private String nameEn;

    @ApiModelProperty(value = "课程类型")
    private String typeName;

    @ApiModelProperty(value = "英文课程类型")
    private String typeNameEn;

    @ApiModelProperty(value = "是否是课程 0=course 1=coursePackage")
    private Integer type = 0;

    @ApiModelProperty(value = "课程类型标签颜色")
    private String typeLabelColor;

    @ApiModelProperty(value = "课程时长（单位：小时）")
    private BigDecimal duration;

    @ApiModelProperty(value = "课程简介")
    private String introduction;

    @ApiModelProperty(value = "英文课程简介")
    private String introductionEn;

    @ApiModelProperty(value = "课程价格")
    private BigDecimal price;

    @ApiModelProperty(value = "课程封面图")
    private String cover;

    @ApiModelProperty(value = "课程轮播图")
    private JSONArray carouselMap;

    @ApiModelProperty(value = "当前课程所剩席位")
    private Integer schedulingSeatCount;

    @ApiModelProperty(value = "下一堂课的开始日期")
    private String schedulingDate;

    @ApiModelProperty(value = "下一堂课开始时间")
    private String schedulingStartTime;

    @ApiModelProperty(value = "下一堂课结束时间")
    private String schedulingEndTime;

    @ApiModelProperty(value = "课程详情")
    private JSONArray courseInfo;

    @ApiModelProperty(value = "课程语言")
    private String language;

    @ApiModelProperty(value = "是否收藏 false=未收藏 true=已收藏")
    private Boolean isCollection = false;

    @ApiModelProperty(value = "状态 false=Inactive true=active")
    private Boolean status = true;

    @ApiModelProperty(value = "是否删除 0=未删除 1=已删除")
    private Integer isDeleted;

    @ApiModelProperty(value = "用户是否预约过当前课程/套课 true=Reserved false=No appointment")
    private Boolean isAppointment = false;

    @ApiModelProperty(value = "待核销订单数量")
    private Integer orderQuantityToBeWrittenOff = 0;

    @ApiModelProperty(value = "已完成订单数量")
    private Integer completedOrderQuantity = 0;

//    @ApiModelProperty(value = "待评价订单数量")
//    private Integer quantityOfOrdersToBeEvaluated = 0;

    @ApiModelProperty(value = "课程/套课所有排期总共所剩的席位")
    private Integer totalSeatsLeftForAllScheduledCourses = 0;

    @ApiModelProperty(value = "课程当前所排的课程")
    private List<CourseSchedulingVo> schedulingList;

    @ApiModelProperty(value = "相关课程 推荐")
    private List<CourseAboutResponse> eventRecommendations;

    @ApiModelProperty(value = "你可能喜欢的商品 推荐")
    private List<CourseAboutResponse> shopRecommendations;

    @ApiModelProperty(value = "相关出版物推荐")
    private List<CourseAboutResponse> publicationRecommendations;

    @ApiModelProperty(value = "席位")
    private Integer seatCount;

    @ApiModelProperty(value = "主图视频")
    private String mainPictureVideo;

    @ApiModelProperty(value = "主图视频-宽")
    private Integer mainPictureVideoWidth;

    @ApiModelProperty(value = "主图视频-高")
    private Integer mainPictureVideoHeight;

    @ApiModelProperty(value = "分享海报")
    private String sharePoster;
}
